﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using CamDo.BUL;
using CamDo.DAO;
using CamDo.DTO;

namespace CamDo
{
    public partial class frmAdd : DevComponents.DotNetBar.RibbonForm
    {
        private bool edit = false;
        private HangHoa hangHoa;

        internal HangHoa HangHoa
        {
            get { return hangHoa; }
            set { hangHoa = value; }
        }
        public bool Edit
        {
            get { return edit; }
            set { edit = value; }
        }

        public frmAdd()
        {
            InitializeComponent();
        }

        public void setTitleLabel(String title)
        {
            lbTitle.Text=title;
        }
        public void loadDataEdit()
        {
            txtMaMH.Text=HangHoa.MaMatHang;
            txtTenMH.Text= HangHoa.TenMatHang;
            txtSoluong.Text=HangHoa.SoLuong.ToString();
            //String loaiMH = cmbLoaiMH.SelectedValue.ToString();
            txtNhaSX.Text=HangHoa.SoLuong.ToString();
            txtGiatriGoc.Text=HangHoa.GiaTriGoc.ToString();
            //String ngayCam = dtNgayCam.Value.ToString("yyyy-MM-dd");
            txtThoiGianCam.Text =HangHoa.ThoigianCam;
            txtLaiSuat.Text = HangHoa.LaiSuat.ToString();
            txtTienChuoc.Text= HangHoa.TienChuoc.ToString();
            txtGiayToKemTheo.Text = HangHoa.GiayToKem;
            txtTenKH.Text = HangHoa.TenKhachHang;
            txtSoDT.Text=HangHoa.SoDienThoai;
            txtCMND.Text=HangHoa.SoCMND;
            //String kieuThoiGian = cmbThoiGianCam.Text;

        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            String maMH = txtMaMH.Text;
            String tenMH = txtTenMH.Text;
            String soLuong = txtSoluong.Text;
            String loaiMH = cmbLoaiMH.SelectedValue.ToString();
            String nhaSX = txtNhaSX.Text;
            String giaTriGoc = txtGiatriGoc.Text;
            String ngayCam = dtNgayCam.Value.ToString("yyyy-MM-dd");
            String thoiGianCam = txtThoiGianCam.Text;
            String laiSuat = txtLaiSuat.Text;
            String tienChuoc = txtTienChuoc.Text;
            String giayToKemTheo = txtGiayToKemTheo.Text;
            String tenKH = txtTenKH.Text;
            String soDT = txtSoDT.Text;
            String soCMND = txtCMND.Text;
            String kieuThoiGian = cmbThoiGianCam.Text;
                       
            bool result = true;
            eMaHH.Text= "";
            eTenMh.Text= "";
            eSoluong.Text = "";
            eLoaiMH.Text = "";
            eNhaSX.Text = "";
            eGiaTriGoc.Text = "";
            eNgayCam.Text = "";
            eThoiGianCam.Text = "";
            eLaiSuat.Text = "";
            eSoTienChuoc.Text = "";
            eGiayToKem.Text = "";
            eTenKH.Text = "";
            eSDT.Text = "";
            eCMND.Text = "";
            if(Validator.EmptyValue(maMH))
            {
                result = false;
                eMaHH.Text= "Mã Mặt Hàng không được trống";
            }
            if(Validator.EmptyValue(tenMH))
            {
                 result = false;
                 eTenMh.Text= "Mã Mặt Hàng không được trống";
            }
            if (Validator.EmptyValue(soLuong) || !Validator.IsNumeric(soLuong))
            {
                result = false;
                eSoluong.Text = "Bạn hãy nhập số lượng kiểu số";
            }
            if (Validator.EmptyValue(loaiMH))
            {
                result = false;
                eLoaiMH.Text = "Bạn hãy chọn loại mặt hàng";
            }
            if (Validator.EmptyValue(nhaSX))
            {
                result = false;
                eNhaSX.Text = "Bạn hãy nhập giá trị nhà sản xuất";
            }
            if (Validator.EmptyValue(giaTriGoc) ||  !Validator.IsNumeric(giaTriGoc))
            {
                result = false;
                eGiaTriGoc.Text = "Bạn hãy nhập giá trị gốc kiểu số";
            }
            if (Validator.EmptyValue(ngayCam))
            {
                result = false;
                eNgayCam.Text = "Bạn hãy nhập thời điểm cầm đồ";
            }
            if (Validator.EmptyValue(thoiGianCam) || !Validator.IsNumeric(thoiGianCam) || Validator.EmptyValue(kieuThoiGian))
            {
                result = false;
                eThoiGianCam.Text = "Bạn hãy chọn và nhập thời gian cầm kiểu số";
            }
            if (Validator.EmptyValue(laiSuat) || !Validator.IsNumeric(laiSuat))
            {
                result = false;
                eLaiSuat.Text="Bạn hãy nhập lãi suất kiểu số";
            }
            if (Validator.EmptyValue(tienChuoc) || !Validator.IsNumeric(tienChuoc))
            {
                result = false;
                eSoTienChuoc.Text = "Bạn hãy nhập số tiền chuộc kiểu số";
            }
            if (Validator.EmptyValue(giayToKemTheo))
            {
                result = false;
                eGiayToKem.Text = "Bạn hãy nhập giấy tờ kèm theo";
            }
            if (Validator.EmptyValue(tenKH))
            {
                result = false;
                eTenKH.Text = "Bạn hãy nhập tên khách hàng";
            }
            if (!Validator.IsNumeric(soDT))
            {
                result = false;
                eSDT.Text = "Bạn hãy nhập đúng định dạng số ĐT";
            }
            if (Validator.EmptyValue(soCMND))
            {
                result = false;
                eCMND.Text = "Bạn hãy nhập số CMND";
            }
           // MessageBox.Show(dtNgayCam.Value.ToString("yyyy-MM-dd"));
            if(result)
            {
                CamDoDAO camdoDao = new CamDoDAO();
                camdoDao.MatHangDTO.MaMatHang = maMH;
                camdoDao.MatHangDTO.TenKhachHang = tenKH;
                camdoDao.MatHangDTO.TenMatHang = tenMH;
                camdoDao.MatHangDTO.NgayCamDo = ngayCam;
                camdoDao.MatHangDTO.NhaSanXuat = nhaSX;
                camdoDao.MatHangDTO.GiaTriGoc = int.Parse(giaTriGoc);
                camdoDao.MatHangDTO.GiayToKem = giayToKemTheo;
                camdoDao.MatHangDTO.LaiSuat = int.Parse(laiSuat);
                camdoDao.MatHangDTO.SoLuong = int.Parse(soLuong);
                camdoDao.MatHangDTO.SoDienThoai = soDT;
                camdoDao.MatHangDTO.SoCMND = soCMND;
                camdoDao.MatHangDTO.LoadMatHang = int.Parse(loaiMH);
                camdoDao.MatHangDTO.ThoigianCam = thoiGianCam;
                camdoDao.MatHangDTO.TrangThai = 1;
                GiaoDichDAO giaoDichDAO = new GiaoDichDAO();
                giaoDichDAO.GiaoDichDTO.MaMatHang = maMH;
                giaoDichDAO.GiaoDichDTO.TenMatHang = tenMH;
                giaoDichDAO.GiaoDichDTO.SoLuong = int.Parse(soLuong);
                giaoDichDAO.GiaoDichDTO.LoaiGiaoDich = 1;
                giaoDichDAO.GiaoDichDTO.LoaiMatHang = int.Parse(loaiMH);
                giaoDichDAO.GiaoDichDTO.TenKhachHang = tenKH;
                giaoDichDAO.GiaoDichDTO.SoDienThoai = soDT;
                giaoDichDAO.GiaoDichDTO.SoCMDN = soCMND;
                giaoDichDAO.GiaoDichDTO.GiaBanTienChuoc = tienChuoc;
                giaoDichDAO.GiaoDichDTO.GiaTriGoc = int.Parse(giaTriGoc);
                giaoDichDAO.GiaoDichDTO.NhaSx = nhaSX;


                
                if (camdoDao.saveARow() && giaoDichDAO.saveARow())
                {
                    this.Close();
                }
                else
                {
                    MessageBox.Show(camdoDao.Error);
                }





  
            }




        }

        private void frmAdd_Load(object sender, EventArgs e)
        {
            DanhMucDAO danhmucDAO = new DanhMucDAO();
            GiaoDichDAO giaoDichDAO = new GiaoDichDAO();
            int maxId = giaoDichDAO.getMaxGiaoDich()+1;

            String maMatHang = "MAMH"+maxId.ToString();
            if (maxId < 10)
            {
                maMatHang = "MAMH0" + maxId.ToString();
            }
            cmbLoaiMH.DataSource = danhmucDAO.getAllData().DefaultView;
            cmbLoaiMH.DisplayMember = "TenDM";
            cmbLoaiMH.ValueMember = "MaDM";
            txtLaiSuat.Text = "0";
            txtGiayToKemTheo.Text = "Không";
            txtSoluong.Text = "0";
            txtMaMH.Text = maMatHang;
            txtMaMH.Enabled = false;
            
           
            
        }

        private void txtGiatriGoc_TextChanged(object sender, EventArgs e)
        {
            this.updateTienChuoc();
            
        }

        private void cmbThoiGianCam_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.updateTienChuoc();
            this.updateNgayChuoc();
        }

        private void txtThoiGianCam_TextChanged(object sender, EventArgs e)
        {
            this.updateTienChuoc();
            this.updateNgayChuoc();
        }
        private void updateTienChuoc()
        {
            String giaTriGoc = txtGiatriGoc.Text;
            String kieuThoiGian = cmbThoiGianCam.Text;
            String thoiGianCam = txtThoiGianCam.Text;
            String laiSuat = txtLaiSuat.Text;
            if (Validator.IsNumeric(giaTriGoc) && !Validator.EmptyValue(kieuThoiGian) && !Validator.EmptyValue(thoiGianCam) && Validator.IsNumeric(thoiGianCam) && Validator.IsNumeric(laiSuat))
            {
                int soNgay = 1;
                if (kieuThoiGian == "Ngày")
                {
                    soNgay = int.Parse(thoiGianCam);
                }
                else
                {
                    soNgay = int.Parse(thoiGianCam) * 30;
                }
                int tienChuoc = int.Parse(giaTriGoc) + (soNgay * int.Parse(laiSuat));
                txtTienChuoc.Text = tienChuoc.ToString();
            }
        }

        private void txtLaiSuat_TextChanged(object sender, EventArgs e)
        {
            this.updateTienChuoc();
        }
        private void updateNgayChuoc()
        {
            String ngayCam = dtNgayCam.Text;
            String kieuThoiGianCam = cmbThoiGianCam.Text;
            String soNgayCam = txtThoiGianCam.Text;
            if (!Validator.EmptyValue(ngayCam) && !Validator.EmptyValue(kieuThoiGianCam) && Validator.IsNumeric(soNgayCam))
            {
                int soNgay = 1;
                if (kieuThoiGianCam == "Ngày")
                {
                    soNgay = int.Parse(soNgayCam);
                }
                else
                {
                    soNgay = int.Parse(soNgayCam) * 30;
                }
                dtNgayChuoc.Value = dtNgayCam.Value.AddDays(soNgay);
            }
            

        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}